Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Apache Jakarta Struts (página 2)




Enviado por Pablo Turmero



Partes: 1, 2, 3, 4

Monografias.com
Apache Jakarta Struts
Implementación del modelo 2/patrón de diseño MVC que facilita la creación de aplicaciones web en Java
Creada por Craig McClanahan y donada a la Apache Software Foundation en el 2000 (pertenece a Apache Jakarta)

Monografias.com
¿Qué proporciona Struts?
Un servlet (ActionServlet) que actúa como controlador MVC totalmente configurable
Clases base que son extendidas para implementar la lógica de la aplicación web:
Struts Action
Struts ActionForm
Un rico conjunto de etiquetas personalizadas JSP que cooperan con el controlador para su uso en la capa view de MVC
Varias opciones para la validación de entrada de usuario en formularios HTML: ActionForm o Validator Framework
Mecanismos para el manejo y reporte de errores
Soporte para la internacionalización (i18n) a través de ficheros de recursos y Java Locales
Soporte para fuentes de datos
Y más …..

Monografias.com
Instalando Apache Struts I
Instalar Apache Tomcat 4.x o superior
Bajar la última versión de Apache Struts de: http://struts.apache.org/download.cgi
Actualmente en la versión 1.2 (fichero jakarta-struts-1.2.4.zip para Windows)
Crear directorio de aplicación. E.j: myStrutsApp
Copiar ficheros .tld en directorio {StrutsDirectory}/contrib/struts-el/lib a myStrutsApp/WEB-INF:
c.tld
struts-bean-el.tld
struts-html-el.tld
struts-logic-el.tld

Monografias.com
Instalando Apache Struts II
Copiar los ficheros .jar files de {StrutsDirectory}/contrib/struts-el/lib a myStrutsApp/WEB-INF/lib directory:
commons-beanutils.jar
commons-collections.jar
commmons-digester.jar
commons-logging.jar
jstl.jar
standard.jar
struts-el.jar
struts.jar
Lo mejor es tomar la aplicación struts-blank.war como punto de partida.

Monografias.com
Documentación y ejemplos de Struts
En el directorio webapps de la distribución de Struts 1.2 se pueden encontrar varios ficheros .war muy útiles:
struts-documentation.war
En el subdirectorio api/index.html se puede encontrar JavaDoc de Struts API
Si se ejecuta esta aplicación web en http://localhost:8080/struts-documentation/ se puede también obtener información detallada sobre el uso de Struts
Ejemplos de uso de Struts:
struts-examples.war
struts-blank.war ? base para la creación de cualquier aplicación que use Struts
etc.

Monografias.com
Flujo de Control en Struts I

Monografias.com
Flujo de Control en Struts II

Monografias.com
Flujo de control en Struts III
La clase org.apache.struts.action.ActionServlet es el eje de Struts. Dada una petición de entrada HTTP:
Crea un objeto ActionForm donde guarda y valida los parámetros de entrada
Decide que objeto Action se debe invocar y le pasa el objeto ActionForm creado
Transfiere control a la siguiente etapa de procesamiento de la petición (típicamente un JSP).
El fichero de configuración web.xml contiene los url mappings para enviar las peticiones de llegada al ActionServlet, mientras que el fichero de configuración de Struts struts-config.xml contiene los mappings a acciones
Los form beans creados por ActionServlet deben ser implementados por el programador, extendiendo org.apache.struts.action.ActionForm.
El programador deberá definir un conjunto de getters y setter y sobreescribir los métodos validate() y reset()
Los objetos Action invocados deben ser desarrollados por el programador y extienden org.apache.struts.action.Action. Tienen un método execute() o (perform() en Struts 1.0) que ejecuta la lógica de negocio
La acción devuelve un objeto ActionForward al servlet que especifica el siguiente paso a ejecutar, normalmente se transfiere el control a un JSP para que visualice los resultados.

Monografias.com
Pasos a seguir en el desarrollo de una aplicación en Struts
Diseña la aplicación en términos de las acciones, vistas y estados del modelo
Añade las librerías Java de Struts y los .tlds de sus etiquetas personalizadas a tu proyecto
Configura tu web.xml para que envíe peticiones HTTP al ActionServet
Configura el ActionServlet definiendo elementos y en struts-config.xml
Define tus clases Action
Define tus clases ActionForm
Define clases adicionales Java representando la lógica de negocio
Define tus páginas de presentación JSP
Desplegar la aplicación
La aplicación ejemplo suministrada con Struts, struts-blank.war, es normalmente un buen punto de partida para desarrollar una nueva aplicación usando Struts

Monografias.com
Actions en Struts
Se crea una acción extendiendo la clase org.apache.struts.action.Action
El ActionServlet ejecuta acciones invocando el método execute() tu clase Action
El método execute() contiene código para manipular el modelo
Dentro del método execute() tienes acceso a:
Cabeceras y parámetros de peticiones HTTP
Atributos/beans guardados en los contextos application/session/request scope
Struts ActionForm asociados con la acción (opcional)
El ActionMapping associado a esta acción (opcional)
El objeto httpResponse
El método execute() devuelve un objeto ActionForward que indica al ActionServlet a dónde transferir el control a continuación

Monografias.com
Form Beans
Un ActionForm es un JavaBean con propiedades que corresponden a los controles de un formulario HTML. Los parámetros son mapeados a propiedades del bean.
Proveen un mecanismo de buffer/validate/convert que necesitamos para asegurarnos que el usuario introduce los datos esperados
Actúa como puente entre el navegador y el objeto de negocio
El programador define un form bean extendiendo la clase org.apache.struts.action.ActionForm (o de forma declarativa usando org.apache.struts.action.DynaActionForm)
Hay que definir cada una de las propiedades en la clase y escribir los getters/setters correspondientes, siguiendo las reglas de JavaBeans
Después de escribir el código del form bean, es necesario asociarlo con una o más acciones a través del fichero de configuración de Struts struts-config.xml
Cada vez que se llama a la acción , el ActionServlet poblará las propiedades con los valores de los parámetros recibidos en el formulario HTML
Las propiedades no sólo pueden ser escalares sino que también pueden ser colecciones de valores

Monografias.com
¿Por qué se necesitan Forms Beans?
¿Por qué no simplemente se accede a los parámetros de una petición, en vez de usar un form bean como intermediario?
Razones:
Los Form beans pueden ser validados antes de que una acción sea invocada
Si la propiedad validate de un elemento Action en el fichero struts-config.xml contiene el valor true (por defecto), el método validate será invocado
Si un form bean falla en la validación puede hacer que Struts envíe al usuario de vuelta a la vista (JSP) desde la que se realizó el POST en primer lugar, junto con un mensaje de error
Es importante asignar a la propiedad input del elemento action en struts-config.xml una referencia a la vista que entregó el formulario
Los form beans pueden ser usados por múltiples acciones o incluso una aplicación completa
Si se configura al ActionController para que guarde un form bean en el contexto de sesión se permitirá el uso del form bean en todas las peticiones web que llegan a la aplicación

Monografias.com
Dynamic Action Forms
Son ActionForms creados de manera declarativa en struts-config.xml
Una o varias propiedades dinámicas pueden ser pasadas a una instancia de org.apache.struts.action.DynaActionForm

Monografias.com
Recursos de String/Manejo de Errores
Recursos de String
Todos los strings usados en mensajes en JSPs tanto de datos de aplicación como de errores puedes ser colocados en un ficheros de recursos (ApplicationResources.properties)
Struts proporciona etiquetas personalizadas JSP tags para acceder a estos recursos
Manejo de errores
Se recomienda que el manejo de errores se lleve a cabo dentro del método execute() y el control se transfiera a la vista apropiada
errors.add("passphrase",new ActionError("error.passphrase.required"));
Struts proporciona un mecanismo separado para permitir la implementación de un manejador global de excepciones
Struts proporciona etiquetas JSP que ayudan en la visualización de los errores en tu JSP:

Monografias.com
Internationalization i18n
Struts soporta internacionalización a través de ficheros de recursos, sus librerías de etiquetas personalizadas y Java Locales
Se pueden definir strings a visualizar en tu fichero de recursos, y luego ser usados en tus JSPs
Los strings del idioma por defecto se guardan en el fichero ApplicationResources.properties
Otros ficheros de recursos adicionales pueden ser definidos que incluyen el idioma a usar en el nombre del fichero.
Ejemplo:
ApplicationResources_eu.properties (Contiene mensajes en Euskera)
ApplicationResources_es.properties (Contiene mensajes en Castellano)
Para cambiar el idioma preferido en IE: Tools?Internet Options?Languages
Los navegadores envían la cabecera HTTP Accept-Language en cada petición que indica cuál es el idioma preferido por el usuario
Los ficheros de recursos deben colocarse en un lugar accesible desde el CLASSPATH de la aplicación web, por ejemplo, debajo del directorio WEB-INF/classes

Monografias.com
Ejemplo web.xml de aplicación usando Struts

action
org.apache.struts.action.ActionServlet

application

com.develop.ejsp.struts.resources.ApplicationResources

1

action
*.do

Monografias.com
Configurando Struts
Como en toda framework se minimiza el código Java a escribir y se maximiza la configuración a través de ficheros XML
Struts se configura a través struts-config.xml
Leído por la framework cuando arranca
Contiene:
Fuentes de datos (data-sources)
Form beans, variaciones de JavaBeans.
Ejecutan una petición basado en una entrega de un formulario.
Son poblados por el controlador con los datos del formulario
Llevan a cabo validación de datos
Son procesados por objetos Action
Global forwards y
ActionMappings
Mapean el nombre de una acción a un objeto Action

Monografias.com
Ejemplo struts-config.xml I

Monografias.com
Ejemplo struts-config.xml II

Monografias.com
Procesamiento de una petición en Struts I
Si el cliente envía la petición:
http://server/app/GotoReplyToAction.do
El ActionServlet de Struts quita la extensión (.do) y mira la acción correspondiente en el fichero de configuración Struts para la acción GotoReplyToAction
Si la encuentra encontrará o creará una instancia del ‘tipo’ (type) indicado: com.develop.ejsp.struts.actions.GotoMessageAction
El método execute() será invocado en el objeto GotoMessageAction:
Este es el lugar donde la lógica de negocio de la petición es ejecutada

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter